﻿using System.Collections.Generic;

namespace StackCalc.Instructions
{
	/// <summary>
	/// Interface for instructions.
	/// </summary>
	public interface IInstruction
	{
		/// <summary>
		/// Executes the instruction.
		/// </summary>
		/// <param name="stack">The stack.</param>
		/// <param name="stackEngine"></param>
		void Execute(List<IInstruction> stack, StackEngine stackEngine);

		/// <summary>
		/// Validates the instruction.
		/// </summary>
		string Validate(List<IInstruction> stack);
	}
}
